Scikit-Learn এর SelectKBest এবং RFECV

Machine Learning - সাইকিট-লার্ন (Scikit-Learn) - Feature Selection এবং Feature Engineering
188

SelectKBest এবং RFECV হলো দুটি জনপ্রিয় পদ্ধতি, যা মেশিন লার্নিং মডেলে ফিচার সিলেকশন করার জন্য ব্যবহৃত হয়। এগুলি ডেটা থেকে সবচেয়ে গুরুত্বপূর্ণ ফিচারগুলি নির্বাচন করতে সাহায্য করে, যাতে মডেলটি আরো দক্ষভাবে কাজ করতে পারে এবং কম্পিউটেশনাল খরচ কমানো যায়।


1. SelectKBest

SelectKBest একটি সাধারণ পদ্ধতি যা ফিচার সিলেকশন করতে ব্যবহৃত হয়। এটি statistical tests ব্যবহার করে, প্রতিটি ফিচারের গুরুত্ব পরিমাপ করে এবং সবচেয়ে গুরুত্বপূর্ণ Kটি ফিচার নির্বাচন করে। এটি Scikit-Learn এর sklearn.feature_selection মডিউলে পাওয়া যায়।

কিভাবে কাজ করে:

  • SelectKBest ব্যবহার করার জন্য আপনাকে প্রথমে একটি score function বা statistical test নির্বাচন করতে হয়। কিছু সাধারণ স্কোর ফাংশন হলো f_classif (ANOVA F-value for classification) এবং f_regression (F-statistic for regression)।
  • এই ফিচার সিলেকশন পদ্ধতিটি K ফিচার নির্বাচন করবে, যেখানে K হল আপনি যে সংখ্যা নির্ধারণ করেছেন।

ফর্মুলা:

from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import f_classif

# SelectKBest ফিচার সিলেকশন তৈরি করা
X_new = SelectKBest(score_func=f_classif, k=5).fit_transform(X, y)

# X_new হল ৫টি সবচেয়ে গুরুত্বপূর্ণ ফিচার

ফিচার সিলেকশনের সুবিধা:

  • সহজ এবং দ্রুত পদ্ধতি, যেখানে শুধুমাত্র Kটি ফিচার নির্বাচন করা হয়।
  • এটি statistical tests এর মাধ্যমে ফিচারের গুরুত্ব সঠিকভাবে পরিমাপ করে।

সীমাবদ্ধতা:

  • এটি শুধুমাত্র স্কোর ফাংশন ব্যবহারের উপর ভিত্তি করে কাজ করে, ফলে এটি নন-লিনিয়ার বা আন্তঃসম্পর্কিত ফিচারগুলি সঠিকভাবে নির্বাচন করতে পারে না।
  • যখন ডেটার মধ্যে অনেক ফিচারের সম্পর্ক থাকে, তখন এটি কিছু গুরুত্বপূর্ণ ফিচার বাদ দিয়ে ফেলতে পারে।

2. RFECV (Recursive Feature Elimination with Cross-Validation)

RFECV (Recursive Feature Elimination with Cross-Validation) হলো একটি উন্নত পদ্ধতি যা recursive feature elimination এর মাধ্যমে ফিচার সিলেকশন করে। এটি একটি cross-validation প্রক্রিয়া ব্যবহার করে যাতে সবচেয়ে গুরুত্বপূর্ণ ফিচারগুলি নির্বাচন করা যায় এবং মডেলের পারফরম্যান্স মূল্যায়ন করা যায়। এই পদ্ধতিতে, প্রথমে সব ফিচার ব্যবহার করে মডেলটি প্রশিক্ষণ দেয়া হয় এবং ধীরে ধীরে কম গুরুত্বপূর্ণ ফিচারগুলি বাদ দেয়া হয় যতক্ষণ না শুধুমাত্র সবচেয়ে গুরুত্বপূর্ণ ফিচারগুলি বাকি থাকে।

কিভাবে কাজ করে:

  • RFECV রিকার্সিভলি মডেলটিকে প্রশিক্ষণ দেয় এবং প্রতিটি সময় ফিচার একে একে বাদ দেয়। একটি নির্দিষ্ট সংখ্যক ফিচারের পর, এটি cross-validation ব্যবহার করে মডেলটি পরীক্ষা করে এবং দেখে কোন কম্বিনেশনটি সবচেয়ে ভালো পারফরম্যান্স দেয়।
  • এটি একটি শক্তিশালী পদ্ধতি, কারণ এটি recursive পদ্ধতিতে কম গুরুত্বপূর্ণ ফিচারগুলো নির্বাচন করে, এবং cross-validation এর মাধ্যমে মডেলটির সঠিকতা পরিমাপ করে।

ফর্মুলা:

from sklearn.feature_selection import RFECV
from sklearn.svm import SVC
from sklearn.model_selection import StratifiedKFold

# RFECV এর মাধ্যমে ফিচার সিলেকশন
model = SVC(kernel="linear")
selector = RFECV(estimator=model, step=1, cv=StratifiedKFold(5))
selector = selector.fit(X, y)

# সেরা ফিচার সংখ্যা
print(f"Optimal number of features: {selector.n_features_}")

# সেরা ফিচারগুলি
selected_features = selector.support_

RFECV এর সুবিধা:

  • এটি cross-validation ব্যবহার করে সবচেয়ে ভালো ফিচার কম্বিনেশন নির্বাচন করতে সহায়ক।
  • Recursive feature elimination পদ্ধতি ব্যবহার করে মডেলের পারফরম্যান্স বজায় রেখে কম গুরুত্বপূর্ণ ফিচারগুলি বাদ দেয়।

সীমাবদ্ধতা:

  • Computationally expensive হতে পারে, বিশেষত যখন ডেটা সেট বড় হয় বা অনেক ফিচার থাকে, কারণ এটি recursive এবং cross-validation পদ্ধতি ব্যবহার করে।
  • এটি অনেক সময় নেয়, কারণ এতে মডেলটি পুনরায় প্রশিক্ষণ দিতে হয়।

SelectKBest vs RFECV

বৈশিষ্ট্যSelectKBestRFECV
কিভাবে কাজ করেফিচারের স্কোরের উপর ভিত্তি করে Kটি সেরা ফিচার নির্বাচন করে।মডেলটিকে প্রশিক্ষণ দিয়ে রিকার্সিভলি কম গুরুত্বপূর্ণ ফিচার বাদ দেয়।
ফিচার সিলেকশন পদ্ধতিপরিসংখ্যানগত স্কোর ব্যবহার করে।Recursive elimination এবং cross-validation ব্যবহার করে।
প্রক্রিয়ার জটিলতাসহজ এবং দ্রুত, কিন্তু সীমিত।আরো জটিল, কিন্তু অধিক সঠিক ফলাফল প্রদান করে।
যখন ব্যবহার করবেনদ্রুত এবং কম্পিউটেশনাল খরচ কম হলে।যখন সঠিক ফিচার নির্বাচন অত্যন্ত গুরুত্বপূর্ণ এবং cross-validation প্রয়োজন।

সারাংশ

  • SelectKBest একটি সরল এবং দ্রুত পদ্ধতি যা নির্দিষ্ট স্কোর ফাংশন ব্যবহার করে Kটি সেরা ফিচার নির্বাচন করে।
  • RFECV একটি আরো শক্তিশালী পদ্ধতি যা recursive feature elimination এবং cross-validation ব্যবহার করে মডেলের পারফরম্যান্স সঠিকভাবে মূল্যায়ন করে এবং সবচেয়ে গুরুত্বপূর্ণ ফিচারগুলি নির্বাচন করে।

যখন আপনার একটি সোজা, দ্রুত এবং কার্যকরী পদ্ধতি প্রয়োজন, তখন SelectKBest ব্যবহার করা যেতে পারে, তবে যদি আপনি মডেলের পারফরম্যান্সের উপর ভিত্তি করে সেরা ফিচারগুলো নির্বাচন করতে চান, তাহলে RFECV একটি ভালো বিকল্প হতে পারে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...